package com.ruoyi.ruoyixingyue.modules.utils.videoUtil;

import com.coremedia.iso.IsoFile;
import lombok.extern.slf4j.Slf4j;

import java.io.File;
import java.io.IOException;

/**
 * @Author 卢壮志
 * @Date 2024/2/26
 * @Time: 23:19
 */
@Slf4j
public class VideoUtil {

    /**
     * 获取视频文件的播放长度(mp4、mov格式)
     *
     * @param videoPath
     * @return 单位为秒
     */
    public static long getMp4Duration(String videoPath) {
        try {
            File file = File.createTempFile("temp", ".mp4");//创建临时文件
            Image2Binary.toBDFile(videoPath, file.getCanonicalPath());
            IsoFile isoFile = new IsoFile(file.getPath());
            long lengthInSeconds =
                    isoFile.getMovieBox().getMovieHeaderBox().getDuration() /
                            isoFile.getMovieBox().getMovieHeaderBox().getTimescale();
            file.deleteOnExit();//删除临时文件
            return lengthInSeconds;
        } catch (Exception e) {
            log.error("error video", e);
            return 0L;
        }
    }
}
